direct proofs discrete math